<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // var str = 'qwer123tyuio456pasdfg789hjk666lzxc777vbnm';
        // // var target = str.replace('123','***');
        // // console.log(target)
        // // var target = str.replace(/\d{3}/,'***');
        // // console.log(target)
        // // 依然是替换一个  
        // var target = str.replace(/\d{3}/g,'***');
        // console.log(target)



    // var str = 'i laohu you';
    // var res = str.search('zz')
    // console.log(res); //-1

//    var str = 'i laohu you';
//     var res = str.search('you')
//     console.log(res); //第一次出现的索引位置  8


    // var str = 'i laohu you';
    // var res = str.search(/y(.*)?u/)
    // console.log(res); //第一次出现的索引位置  8


    // var str = 'qwe123tyu456iopasd789fgh666jkl777zxc999vbnm';
    // var reg = '123';
    // var res = str.match(reg);
    // console.log(res); // 跟exec 是一样的 得到的是个数组  下标0就是我们想要的  

    // var res = str.match(/\d{3}/);
    // console.log(res);
    // console.log(str.match(/\d{3}/));
    // console.log(str.match(/\d{3}/));


    // var res = str.match(/\d{3}/g);
    // console.log(res);


    // 等同于 下面的方式 

        // var data = []; // 保存最终的结果 
        // var res = reg.exec(str);
        // console.log(res);
        // console.log(reg.exec(str));
        // console.log(reg.exec(str));
        // console.log(reg.exec(str));
        // console.log(reg.exec(str));
        // console.log(reg.exec(str));
        // console.log(reg.exec(str));
        // 只要res 不是null  我就要一直捕获下去  
        // while(res != null){ // 如果不是null 继续下一次捕获 
        //     data.push(res[0]); // 把捕获的结果放到新数组中 
        //     res = reg.exec(str) // 捕获下一次 重新赋值给res 
        // }

        // console.log(data);




        // 批量替换敏感词 

        var str = 'qwerHHtyuioDDpasdfgXXhjklzxOOcvbnm';
        // HH  DD  XX  OO  全部替换成   ****
        var target = ['HH','DD','XX','OO'];

        // for(var v of target){
        //     str = str.split(v).join('***')
        // }
        // console.log(str)
        // var reg = /(HH|DD|XX|OO)/g  // 这是手动将数组拼接成字符串 

        // // var res = str.match(reg);

        // // console.log(res)
        // var res = str.replace(reg,'***');
        // console.log(res)


        // 如果不是手动的将数组拼接成字符串 
        //  target.join('|')  => HH|DD|XX|OO
        //  我们的正则 var reg = /(HH|DD|XX|OO)/g
        // var reg = /(target.join('|'))/g 这种写法target.join('|')当成普通的字符串 
        // 所以这里不能才用字面量的方式 创建规则  

        // 我们可以采用内置构造函数  
        // new RegExp('')

        // ''+变量+''  =>得到一个字符串　
        // '('+target.join('|')+')'
        var reg = new RegExp('('+target.join('|')+')','g');

        var res = str.replace(reg,'***');
        console.log(res)


    </script>
</body>
</html>